package com.eric.webproject.controller;

import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.LineCaptcha;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.OutputStream;

@Controller
public class CommonController {

    @RequestMapping({"/common/login.html","/"})
    public String toLogin(){
        return "common/login";
    }

    @RequestMapping("/common/verifyCode")
    public void verifyCode(HttpSession session, HttpServletResponse response) throws IOException {
        //生成验证码
        //我们可以利用java swing 自己画一个验证码
        //但实际工作中，我们都是使用第三方工具库---推荐hutool

        //定义图形验证码的长和宽
        LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(120, 40,4,30);
        String code = lineCaptcha.getCode();
        System.out.println(code);

        //此次生成的验证码，需要在后面登录操作时，进行验证
        //验证用户输入的验证码和生成的验证码是否一致
        //需要将这个验证码装入session，就可以在后面的登录请求中获取验证码，并检测
        session.setAttribute("code",code);

        //我们的验证码图片不需要存储在本地，而是需要响应给浏览器
        OutputStream os = response.getOutputStream();
        lineCaptcha.write(os);
        os.flush();
    }

    @RequestMapping("/common/timeout.html")
    public String toTimeOut(){
        return "common/timeout";
    }
}
